1. Field of the Invention
This invention relates to tape drives, and more particularly to apparatus and methods for decoding encoded data containing integrated data and header protection.
2. Background of the Invention
In some tape drives, such as current linear tape open (LTO) and enterprise-level tape drives, variable-length blocks of data are received from a host interface and converted into fixed units known as data sets. These data sets are typically broken down into smaller fixed units known as sub data sets (SDSs). Error correction coding is then performed on these sub data sets as a unit to protect the data contained therein.
To protect data in an SDS, conventional tape drives may organize a sub data set into a two-dimensional array made up of rows and columns. Each row in the two-dimensional array may be made up of multiple (e.g., 2 or 4) interleaved data words. Error correction parity bits or symbols, where symbols consist of multiple bits, may then be generated for each row in the array and each column in the array to protect the data contained therein. This in essence provides two dimensions of protection for data in the array since protection is provided for both the rows and columns. Once generated, the error correction parity bits or symbols may be appended to the array for eventual storage on the magnetic tape medium.
Once error correction parity bits or symbols are appended to the array, one or more headers may be generated and appended to each row in the array. These headers generally store addressing information and other meta data associated with the data words in the array. These headers are typically not protected by error correction codes although they may contain error detection codes such as cyclic redundancy checks (CRCs). Generating and storing error correction parity bits or symbols in the headers may increase the size of the headers and undesirably reduce the efficiency of the storage format.
As the linear recording density for tape storage media continues to increase, error rates for the data and headers stored on the tape are also expected to increase. Errors in the data may be corrected using the error correction parity bits or symbols appended to the array. However, errors in the headers may be more problematic since they may not be protected by error correction codes. If a header is corrupt and cannot be recovered, all or part of the data that is referenced by the header may be lost. Conventional techniques for determining and correcting header errors using along-track and across-track interpolation are not sufficient to protect tape headers at high linear densities and track densities. Furthermore, formats that permit along-track and across-track interpolation are limited in flexibility to rewrite data that is detected in error during the read-while-write operation.
In view of the foregoing, what is needed is an encoding scheme to more effectively protect headers in current or future tape storage formats. More specifically, an encoding scheme is needed to generate error correction parity bits or symbols for data and headers that will provide sufficient protection for both while not incurring restrictions on rewrite flexibility. Such an encoding scheme will also ideally preserve storage format efficiency. Further needed is a decoding scheme for reliably decoding data encoded using the above-mentioned encoding scheme. Ideally, such a decoding scheme will reliably decode encoded data even in the presence of errors, such as dynamic random access memory (DRAM) errors.